package cn.edu.sgu.www.mhxysy.service.prop;

import cn.edu.sgu.www.mhxysy.dto.prop.PropDTO;
import cn.edu.sgu.www.mhxysy.entity.prop.Prop;
import cn.edu.sgu.www.mhxysy.pager.prop.PropPager;
import cn.edu.sgu.www.mhxysy.vo.prop.PropVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.transaction.annotation.Transactional;

/**
 * @author 沐雨橙风ιε
 * @version 1.0
 */
public interface PropService {

    /**
     * 移动道具
     * @param propId 道具ID
     * @param repositoryId 仓库ID
     */
    @Transactional(rollbackFor = Exception.class)
    void move(String propId, String repositoryId);

    /**
     * 添加道具
     * @param propDTO 道具信息
     */
    @Transactional(rollbackFor = Exception.class)
    void insert(PropDTO propDTO);

    /**
     * 通过ID删除道具
     * @param propId 道具ID
     */
    @Transactional(rollbackFor = Exception.class)
    void deleteById(String propId);

    /**
     * 通过ID修改道具信息
     * @param propDTO 道具信息
     */
    void updateById(PropDTO propDTO);

    /**
     * 通过ID查询道具信息
     * @param propId 道具ID
     * @return PropVO
     */
    PropVO selectProp(String propId);

    /**
     * 分页查询道具列表
     * @param pager 分页参数
     * @return Page<Prop>
     */
    Page<Prop> selectByPage(PropPager pager);
}